[DEFAULT]

#
# From oslo.log
#

# Print debugging output (set logging level to DEBUG instead of
# default INFO level). (boolean value)
#debug = false

# If set to false, will disable INFO logging level, making WARNING the
# default. (boolean value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#verbose = true
verbose = false

# The name of a logging configuration file. This file is appended to
# any existing logging configuration files. For details about logging
# configuration files, see the Python logging module documentation.
# Note that when logging configuration files are used then all logging
# configuration is set in the configuration file and other logging
# configuration options are ignored (for example, log_format). (string
# value)
# Deprecated group/name - [DEFAULT]/log_config
#log_config_append = <None>

# DEPRECATED. A logging.Formatter log message format string which may
# use any of the available logging.LogRecord attributes. This option
# is deprecated.  Please use logging_context_format_string and
# logging_default_format_string instead. This option is ignored if
# log_config_append is set. (string value)
#log_format = <None>

# Format string for %%(asctime)s in log records. Default: %(default)s
# . This option is ignored if log_config_append is set. (string value)
#log_date_format = %Y-%m-%d %H:%M:%S

# (Optional) Name of log file to output to. If no default is set,
# logging will go to stdout. This option is ignored if
# log_config_append is set. (string value)
# Deprecated group/name - [DEFAULT]/logfile
#log_file = <None>

# (Optional) The base directory used for relative --log-file paths.
# This option is ignored if log_config_append is set. (string value)
# Deprecated group/name - [DEFAULT]/logdir
#log_dir = <None>

# (Optional) Uses logging handler designed to watch file system. When
# log file is moved or removed this handler will open a new log file
# with specified path instantaneously. It makes sense only if log-file
# option is specified and Linux platform is used. This option is
# ignored if log_config_append is set. (boolean value)
#watch_log_file = false

# Use syslog for logging. Existing syslog format is DEPRECATED and
# will be changed later to honor RFC5424. This option is ignored if
# log_config_append is set. (boolean value)
#use_syslog = false

# (Optional) Enables or disables syslog rfc5424 format for logging. If
# enabled, prefixes the MSG part of the syslog message with APP-NAME
# (RFC5424). The format without the APP-NAME is deprecated in Kilo,
# and will be removed in Mitaka, along with this option. This option
# is ignored if log_config_append is set. (boolean value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#use_syslog_rfc_format = true

# Syslog facility to receive log lines. This option is ignored if
# log_config_append is set. (string value)
#syslog_log_facility = LOG_USER

# Log output to standard error. This option is ignored if
# log_config_append is set. (boolean value)
#use_stderr = true

# Format string to use for log messages with context. (string value)
#logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s

# Format string to use for log messages without context. (string
# value)
#logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s

# Data to append to log format when level is DEBUG. (string value)
#logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d

# Prefix each line of exception output with this format. (string
# value)
#logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s

# List of logger=LEVEL pairs. This option is ignored if
# log_config_append is set. (list value)
#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN

# Enables or disables publication of error events. (boolean value)
#publish_errors = false

# The format for an instance that is passed with the log message.
# (string value)
#instance_format = "[instance: %(uuid)s] "

# The format for an instance UUID that is passed with the log message.
# (string value)
#instance_uuid_format = "[instance: %(uuid)s] "

# Enables or disables fatal status of deprecations. (boolean value)
#fatal_deprecations = false

#
# From tempest.config
#

# Prefix to be added when generating the name for test resources. It
# can be used to discover all resources associated with a specific
# test run when running tempest on a real-life cloud (string value)
#resources_prefix = tempest


[auth]

#
# From tempest.config
#

# Path to the yaml file that contains the list of credentials to use
# for running tests. If used when running in parallel you have to make
# sure sufficient credentials are provided in the accounts file. For
# example if no tests with roles are being run it requires at least `2
# * CONC` distinct accounts configured in  the `test_accounts_file`,
# with CONC == the number of concurrent test processes. (string value)
#test_accounts_file = <None>

# Allows test cases to create/destroy tenants and users. This option
# requires that OpenStack Identity API admin credentials are known. If
# false, isolated test cases and parallel execution, can still be
# achieved configuring a list of test accounts (boolean value)
# Deprecated group/name - [auth]/allow_tenant_isolation
# Deprecated group/name - [compute]/allow_tenant_isolation
# Deprecated group/name - [orchestration]/allow_tenant_isolation
#use_dynamic_credentials = true

# Roles to assign to all users created by tempest (list value)
#tempest_roles =

# Default domain used when getting v3 credentials. This is the name
# keystone uses for v2 compatibility. (string value)
# Deprecated group/name - [auth]/tenant_isolation_domain_name
#default_credentials_domain_name = Default

# If use_dynamic_credentials is set to True and Neutron is enabled
# Tempest will try to create a usable network, subnet, and router when
# needed for each tenant it creates. However in some neutron
# configurations, like with VLAN provider networks, this doesn't work.
# So if set to False the isolated networks will not be created
# (boolean value)
#create_isolated_networks = true

# Username for an administrative user. This is needed for
# authenticating requests made by tenant isolation to create users and
# projects (string value)
# Deprecated group/name - [identity]/admin_username
#admin_username = <None>
admin_username = admin

# Tenant name to use for an  administrative user. This is needed for
# authenticating requests made by tenant isolation to create users and
# projects (string value)
# Deprecated group/name - [identity]/admin_tenant_name
#admin_tenant_name = <None>
admin_project_name = admin

# Password to use for an  administrative user. This is needed for
# authenticating requests made by tenant isolation to create users and
# projects (string value)
# Deprecated group/name - [identity]/admin_password
#admin_password = <None>
admin_password = {{ keystone_admin_password }}

# Admin domain name for authentication (Keystone V3).The same domain
# applies to user and project (string value)
# Deprecated group/name - [identity]/admin_domain_name
#admin_domain_name = <None>
admin_domain_name = Default

[baremetal]

#
# From tempest.config
#

# Catalog type of the baremetal provisioning service (string value)
#catalog_type = baremetal

# Whether the Ironic nova-compute driver is enabled (boolean value)
#driver_enabled = false

# Driver name which Ironic uses (string value)
#driver = fake

# The endpoint type to use for the baremetal provisioning service
# (string value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
#endpoint_type = publicURL

# Timeout for Ironic node to completely provision (integer value)
#active_timeout = 300

# Timeout for association of Nova instance and Ironic node (integer
# value)
#association_timeout = 30

# Timeout for Ironic power transitions. (integer value)
#power_timeout = 60

# Timeout for unprovisioning an Ironic node. Takes longer since Kilo
# as Ironic performs an extra step in Node cleaning. (integer value)
#unprovision_timeout = 300


[boto]

#
# From tempest.config
#

# EC2 URL (string value)
#ec2_url = http://localhost:8773/services/Cloud

# S3 URL (string value)
#s3_url = http://localhost:8080

# AWS Secret Key (string value)
#aws_secret = <None>

# AWS Access Key (string value)
#aws_access = <None>

# AWS Zone for EC2 tests (string value)
#aws_zone = nova

# S3 Materials Path (string value)
#s3_materials_path = /opt/stack/devstack/files/images/s3-materials/cirros-0.3.0

# ARI Ramdisk Image manifest (string value)
#ari_manifest = cirros-0.3.0-x86_64-initrd.manifest.xml

# AMI Machine Image manifest (string value)
#ami_manifest = cirros-0.3.0-x86_64-blank.img.manifest.xml

# AKI Kernel Image manifest (string value)
#aki_manifest = cirros-0.3.0-x86_64-vmlinuz.manifest.xml

# Instance type (string value)
#instance_type = m1.tiny

# boto Http socket timeout (integer value)
#http_socket_timeout = 3

# boto num_retries on error (integer value)
#num_retries = 1

# Status Change Timeout (integer value)
#build_timeout = 60

# Status Change Test Interval (integer value)
#build_interval = 1


[compute]

#
# From tempest.config
#

# Valid primary image reference to be used in tests. This is a
# required option (string value)
#image_ref = <None>
image_ref = {{ cirros_image.id }}

# Valid secondary image reference to be used in tests. This is a
# required option, but if only one image is available duplicate the
# value of image_ref above (string value)
#image_ref_alt = <None>
image_ref_alt = {{ cirros_image.id }}

# Valid primary flavor to use in tests. (string value)
#flavor_ref = 1
flavor_ref = 0

# Valid secondary flavor to be used in tests. (string value)
#flavor_ref_alt = 2
flavor_ref_alt = 1

# User name used to authenticate to an instance using the alternate
# image. (string value)
#image_alt_ssh_user = root

# Time in seconds between build status checks. (integer value)
#build_interval = 1

# Timeout in seconds to wait for an instance to build. Other services
# that do not define build_timeout will inherit this value. (integer
# value)
#build_timeout = 300

# Name of the fixed network that is visible to all test tenants. If
# multiple networks are available for a tenant this is the network
# which will be used for creating servers if tempest does not create a
# network or a network is not specified elsewhere. It may be used for
# ssh validation only if floating IPs are disabled. (string value)
#fixed_network_name = <None>

# Network used for SSH connections. Ignored if
# use_floatingip_for_ssh=true or run_validation=false. (string value)
#network_for_ssh = public

# Does SSH use Floating IPs? (boolean value)
#use_floatingip_for_ssh = true

# Catalog type of the Compute service. (string value)
#catalog_type = compute

# The compute region name to use. If empty, the value of
# identity.region is used instead. If no such region is found in the
# service catalog, the first found one is used. (string value)
#region =

# The endpoint type to use for the compute service. (string value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
#endpoint_type = publicURL

# Expected device name when a volume is attached to an instance
# (string value)
#volume_device_name = vdb

# Time in seconds before a shelved instance is eligible for removing
# from a host.  -1 never offload, 0 offload when shelved. This time
# should be the same as the time of nova.conf, and some tests will run
# for as long as the time. (integer value)
#shelved_offload_time = 0

# The minimum number of compute nodes expected. This will be utilized
# by some multinode specific tests to ensure that requests match the
# expected size of the cluster you are testing with. (integer value)
#min_compute_nodes = 1
min_compute_nodes = {{ groups['nova_compute'] | count }}


[compute-feature-enabled]

#
# From tempest.config
#

# If false, skip disk config tests (boolean value)
#disk_config = true

# A list of enabled compute extensions with a special entry all which
# indicates every extension is enabled. Each extension should be
# specified with alias name. Empty list indicates all extensions are
# disabled (list value)
#api_extensions = all

# Does the test environment support changing the admin password?
# (boolean value)
#change_password = false

# Does the test environment support obtaining instance serial console
# output? (boolean value)
#console_output = true

# Does the test environment support resizing? (boolean value)
#resize = false
resize = true

# Does the test environment support pausing? (boolean value)
#pause = true

# Does the test environment support shelving/unshelving? (boolean
# value)
#shelve = true

# Does the test environment support suspend/resume? (boolean value)
#suspend = true

# Does the test environment support live migration available? (boolean
# value)
#live_migration = true

# Does the test environment support metadata service? Ignored unless
# validation.run_validation=true. (boolean value)
#metadata_service = true

# Does the test environment use block devices for live migration
# (boolean value)
#block_migration_for_live_migration = false
block_migration_for_live_migration = {{ nova_ephemeral_backend == 'local' }}

# Does the test environment block migration support cinder iSCSI
# volumes. Note, libvirt doesn't support this, see
# https://bugs.launchpad.net/nova/+bug/1398999 (boolean value)
#block_migrate_cinder_iscsi = false

# Does the test system allow live-migration of paused instances? Note,
# this is more than just the ANDing of paused and live_migrate, but
# all 3 should be set to True to run those tests (boolean value)
#live_migrate_paused_instances = false

# Enable VNC console. This configuration value should be same as
# [nova.vnc]->vnc_enabled in nova.conf (boolean value)
#vnc_console = false

# Enable Spice console. This configuration value should be same as
# [nova.spice]->enabled in nova.conf (boolean value)
#spice_console = false

# Enable RDP console. This configuration value should be same as
# [nova.rdp]->enabled in nova.conf (boolean value)
#rdp_console = false

# Does the test environment support instance rescue mode? (boolean
# value)
#rescue = true

# Enables returning of the instance password by the relevant server
# API calls such as create, rebuild or rescue. (boolean value)
#enable_instance_password = true

# Does the test environment support dynamic network interface
# attachment? (boolean value)
#interface_attach = true

# Does the test environment support creating snapshot images of
# running instances? (boolean value)
#snapshot = true

# Does the test environment have the ec2 api running? (boolean value)
#ec2_api = true

# Does the test environment have the nova cert running? (boolean
# value)
#nova_cert = true
nova_cert = false

# Does the test environment support server personality (boolean value)
#personality = true
personality = false

# Does Nova preserve preexisting ports from Neutron when deleting an
# instance? This should be set to True if testing Kilo+ Nova. (boolean
# value)
#preserve_ports = false
preserve_ports = true

# Does the test environment support attaching an encrypted volume to a
# running server instance? This may depend on the combination of
# compute_driver in nova and the volume_driver(s) in cinder. (boolean
# value)
#attach_encrypted_volume = true
attach_encrypted_volume = false

# Does the test environment support creating instances with multiple
# ports on the same network? This is only valid when using Neutron.
# (boolean value)
#allow_duplicate_networks = false
allow_duplicate_networks = true

# Enable special configuration drive with metadata. (boolean value)
#config_drive = true


[dashboard]

#
# From tempest.config
#

# Where the dashboard can be found (string value)
#dashboard_url = http://localhost/
dashboard_url = {{ SSLCertificateKeyFileSource is defined | ternary('https','http') }}://{{ os_public_address }}/horizon

# Login page for the dashboard (string value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#login_url = http://localhost/auth/login/


[data-processing]

#
# From tempest.config
#

# Catalog type of the data processing service. (string value)
# Deprecated group/name - [data_processing]/catalog_type
#catalog_type = data-processing

# The endpoint type to use for the data processing service. (string
# value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
# Deprecated group/name - [data_processing]/endpoint_type
#endpoint_type = publicURL


[data-processing-feature-enabled]

#
# From tempest.config
#

# List of enabled data processing plugins (list value)
# Deprecated group/name - [data_processing-feature-enabled]/plugins
#plugins = vanilla,hdp


[database]

#
# From tempest.config
#

# Catalog type of the Database service. (string value)
#catalog_type = database

# Valid primary flavor to use in database tests. (string value)
#db_flavor_ref = 1

# Current database version to use in database tests. (string value)
#db_current_version = v1.0


[debug]

#
# From tempest.config
#

# A regex to determine which requests should be traced.
#
# This is a regex to match the caller for rest client requests to be
# able to
# selectively trace calls out of specific classes and methods. It
# largely
# exists for test development, and is not expected to be used in a
# real deploy
# of tempest. This will be matched against the discovered
# ClassName:method
# in the test environment.
#
# Expected values for this field are:
#
#  * ClassName:test_method_name - traces one test_method
#  * ClassName:setUp(Class) - traces specific setup functions
#  * ClassName:tearDown(Class) - traces specific teardown functions
#  * ClassName:_run_cleanups - traces the cleanup functions
#
# If nothing is specified, this feature is not enabled. To trace
# everything
# specify .* as the regex.
#  (string value)
#trace_requests =


[identity]

#
# From tempest.config
#

# Catalog type of the Identity service. (string value)
#catalog_type = identity

# Set to True if using self-signed SSL certificates. (boolean value)
#disable_ssl_certificate_validation = false
disable_ssl_certificate_validation = {{ ssl_insecure }}

# Specify a CA bundle file to use in verifying a TLS (https) server
# certificate. (string value)
#ca_certificates_file = <None>
ca_certificates_file = {{ tempest_CAFile }}

# Full URI of the OpenStack Identity API (Keystone), v2 (string value)
#uri = <None>
uri = {{ keystone_proto }}://{{ keystone_internal_address }}:5000/v2.0

# Full URI of the OpenStack Identity API (Keystone), v3 (string value)
#uri_v3 = <None>
uri_v3 = {{ keystone_proto }}://{{ keystone_internal_address }}:5000/v3

# Identity API version to be used for authentication for API tests.
# (string value)
#auth_version = v2
auth_version = v3

# The identity region name to use. Also used as the other services'
# region name unless they are set explicitly. If no such region is
# found in the service catalog, the first found one is used. (string
# value)
#region = RegionOne
region = {{ keystone_region_name }}

# The admin endpoint type to use for OpenStack Identity (Keystone) API
# v2 (string value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
#v2_admin_endpoint_type = adminURL

# The public endpoint type to use for OpenStack Identity (Keystone)
# API v2 (string value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
# Deprecated group/name - [identity]/endpoint_type
#v2_public_endpoint_type = publicURL

# The endpoint type to use for OpenStack Identity (Keystone) API v3
# (string value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
#v3_endpoint_type = adminURL

# Username to use for Nova API requests. (string value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#username = <None>
username = {{ heat_stack_owner_user }}

# Tenant name to use for Nova API requests. (string value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#tenant_name = <None>
tenant_name = {{ heat_stack_owner_project }}

# Role required to administrate keystone. (string value)
#admin_role = admin

# API key to use when authenticating. (string value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#password = <None>
password = {{ heat_stack_owner_password }}

# Domain name for authentication (Keystone V3).The same domain applies
# to user and project (string value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#domain_name = <None>

# Username of alternate user to use for Nova API requests. (string
# value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#alt_username = <None>

# Alternate user's Tenant name to use for Nova API requests. (string
# value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#alt_tenant_name = <None>

# API key to use when authenticating as alternate user. (string value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#alt_password = <None>

# Alternate domain name for authentication (Keystone V3).The same
# domain applies to user and project (string value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#alt_domain_name = <None>

# ID of the default domain (string value)
#default_domain_id = default


[identity-feature-enabled]

#
# From tempest.config
#

# Does the identity service have delegation and impersonation enabled
# (boolean value)
#trust = true

# Is the v2 identity API enabled (boolean value)
#api_v2 = true

# Is the v3 identity API enabled (boolean value)
#api_v3 = true

# A list of enabled identity extensions with a special entry all which
# indicates every extension is enabled. Empty list indicates all
# extensions are disabled. To get the list of extensions run:
# 'keystone discover' (list value)
#api_extensions = all


[image]

#
# From tempest.config
#

# Catalog type of the Image service. (string value)
#catalog_type = image

# The image region name to use. If empty, the value of identity.region
# is used instead. If no such region is found in the service catalog,
# the first found one is used. (string value)
#region =

# The endpoint type to use for the image service. (string value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
#endpoint_type = publicURL

# http accessible image (string value)
#http_image = http://download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-uec.tar.gz
http_image = {{ cirros_image_url }}

# Timeout in seconds to wait for an image to become available.
# (integer value)
#build_timeout = 300

# Time in seconds between image operation status checks. (integer
# value)
#build_interval = 1

# A list of image's container formats users can specify. (list value)
#container_formats = ami,ari,aki,bare,ovf,ova

# A list of image's disk formats users can specify. (list value)
#disk_formats = ami,ari,aki,vhd,vmdk,raw,qcow2,vdi,iso


[image-feature-enabled]

#
# From tempest.config
#

# Is the v2 image API enabled (boolean value)
#api_v2 = true

# Is the v1 image API enabled (boolean value)
#api_v1 = true

# Is the deactivate-image feature enabled. The feature has been
# integrated since Kilo. (boolean value)
#deactivate_image = false


[input-scenario]

#
# From tempest.config
#

# Matching images become parameters for scenario tests (string value)
#image_regex = ^cirros-0.3.1-x86_64-uec$

# Matching flavors become parameters for scenario tests (string value)
#flavor_regex = ^m1.nano$

# SSH verification in tests is skippedfor matching images (string
# value)
#non_ssh_image_regex = ^.*[Ww]in.*$

# List of user mapped to regex to matching image names. (string value)
#ssh_user_regex = [["^.*[Cc]irros.*$", "cirros"]]


[messaging]

#
# From tempest.config
#

# Catalog type of the Messaging service. (string value)
#catalog_type = messaging

# The maximum number of queue records per page when listing queues
# (integer value)
#max_queues_per_page = 20

# The maximum metadata size for a queue (integer value)
#max_queue_metadata = 65536

# The maximum number of queue message per page when listing (or)
# posting messages (integer value)
#max_messages_per_page = 20

# The maximum size of a message body (integer value)
#max_message_size = 262144

# The maximum number of messages per claim (integer value)
#max_messages_per_claim = 20

# The maximum ttl for a message (integer value)
#max_message_ttl = 1209600

# The maximum ttl for a claim (integer value)
#max_claim_ttl = 43200

# The maximum grace period for a claim (integer value)
#max_claim_grace = 43200


[negative]

#
# From tempest.config
#

# Test generator class for all negative tests (string value)
#test_generator = tempest.common.generator.negative_generator.NegativeTestGenerator


[network]

#
# From tempest.config
#

# Catalog type of the Neutron service. (string value)
#catalog_type = network

# The network region name to use. If empty, the value of
# identity.region is used instead. If no such region is found in the
# service catalog, the first found one is used. (string value)
#region =

# The endpoint type to use for the network service. (string value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
#endpoint_type = publicURL

# The cidr block to allocate tenant ipv4 subnets from (string value)
#project_network_cidr = 10.100.0.0/16
project_network_cidr = {{ tenant_network_cidr }}

# The mask bits for tenant ipv4 subnets (integer value)
#tenant_network_mask_bits = 28

# The cidr block to allocate tenant ipv6 subnets from (string value)
#tenant_network_v6_cidr = 2003::/48

# The mask bits for tenant ipv6 subnets (integer value)
#tenant_network_v6_mask_bits = 64

# Whether tenant networks can be reached directly from the test
# client. This must be set to True when the 'fixed' ssh_connect_method
# is selected. (boolean value)
#tenant_networks_reachable = false

# Id of the public network that provides external connectivity (string
# value)
#public_network_id =
public_network_id = {{ external_net.id }}

# Default floating network name. Used to allocate floating IPs when
# neutron is enabled. (string value)
#floating_network_name = <None>
floating_netwok_name = {{ external_net_name }}

# Id of the public router that provides external connectivity. This
# should only be used when Neutron's 'allow_overlapping_ips' is set to
# 'False' in neutron.conf. usually not needed past 'Grizzly' release
# (string value)
#public_router_id =

# Timeout in seconds to wait for network operation to complete.
# (integer value)
#build_timeout = 300

# Time in seconds between network operation status checks. (integer
# value)
#build_interval = 1

# List of dns servers which should be used for subnet creation (list
# value)
#dns_servers = 8.8.8.8,8.8.4.4

# vnic_type to use when Launching instances with pre-configured ports.
# Supported ports are: ['normal','direct','macvtap'] (string value)
# Allowed values: <None>, normal, direct, macvtap
#port_vnic_type = <None>

# List of ip pools for subnetpools creation (list value)
#default_network = 1.0.0.0/16,2.0.0.0/16


[network-feature-enabled]

#
# From tempest.config
#

# Allow the execution of IPv6 tests (boolean value)
#ipv6 = true

# A list of enabled network extensions with a special entry all which
# indicates every extension is enabled. Empty list indicates all
# extensions are disabled. To get the list of extensions run: 'neutron
# ext-list' (list value)
#api_extensions = all
api_extensions = {{ ','.join(neutron_api_extensions) }}{{ (neutron_vpnaas_type == None) | ternary('',',vpnaas') }}

# Allow the execution of IPv6 subnet tests that use the extended IPv6
# attributes ipv6_ra_mode and ipv6_address_mode (boolean value)
#ipv6_subnet_attributes = false

# Does the test environment support changing port admin state (boolean
# value)
#port_admin_state_change = true


[object-storage]

#
# From tempest.config
#

# Catalog type of the Object-Storage service. (string value)
#catalog_type = object-store

# The object-storage region name to use. If empty, the value of
# identity.region is used instead. If no such region is found in the
# service catalog, the first found one is used. (string value)
#region =

# The endpoint type to use for the object-store service. (string
# value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
#endpoint_type = publicURL

# Number of seconds to time on waiting for a container to container
# synchronization complete. (integer value)
#container_sync_timeout = 600

# Number of seconds to wait while looping to check the status of a
# container to container synchronization (integer value)
#container_sync_interval = 5

# Role to add to users created for swift tests to enable creating
# containers (string value)
#operator_role = Member

# User role that has reseller admin (string value)
#reseller_admin_role = ResellerAdmin

# Name of sync realm. A sync realm is a set of clusters that have
# agreed to allow container syncing with each other. Set the same
# realm name as Swift's container-sync-realms.conf (string value)
#realm_name = realm1

# One name of cluster which is set in the realm whose name is set in
# 'realm_name' item in this file. Set the same cluster name as Swift's
# container-sync-realms.conf (string value)
#cluster_name = name1


[object-storage-feature-enabled]

#
# From tempest.config
#

# A list of the enabled optional discoverable apis. A single entry,
# all, indicates that all of these features are expected to be enabled
# (list value)
#discoverable_apis = all
discoverable_apis = {{ ','.join(swift_api_extensions) }}

# Execute (old style) container-sync tests (boolean value)
#container_sync = true

# Execute object-versioning tests (boolean value)
#object_versioning = true

# Execute discoverability tests (boolean value)
#discoverability = true


[orchestration]

#
# From tempest.config
#

# Catalog type of the Orchestration service. (string value)
#catalog_type = orchestration

# The orchestration region name to use. If empty, the value of
# identity.region is used instead. If no such region is found in the
# service catalog, the first found one is used. (string value)
#region =

# The endpoint type to use for the orchestration service. (string
# value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
#endpoint_type = publicURL

# Role required for users to be able to manage stacks (string value)
#stack_owner_role = heat_stack_owner

# Time in seconds between build status checks. (integer value)
#build_interval = 1

# Timeout in seconds to wait for a stack to build. (integer value)
#build_timeout = 1200

# Instance type for tests. Needs to be big enough for a full OS plus
# the test workload (string value)
#instance_type = m1.micro
instance_type = m1.tiny

# Name of existing keypair to launch servers with. (string value)
#keypair_name = <None>

# Value must match heat configuration of the same name. (integer
# value)
#max_template_size = 524288

# Value must match heat configuration of the same name. (integer
# value)
#max_resources_per_stack = 1000


[oslo_concurrency]

#
# From oslo.concurrency
#

# Enables or disables inter-process locks. (boolean value)
# Deprecated group/name - [DEFAULT]/disable_process_locking
#disable_process_locking = false

# Directory to use for lock files.  For security, the specified
# directory should only be writable by the user running the processes
# that need locking. Defaults to environment variable OSLO_LOCK_PATH.
# If external locks are used, a lock path must be set. (string value)
# Deprecated group/name - [DEFAULT]/lock_path
#lock_path = <None>
lock_path = {{ tempest_lock_path }}

[scenario]

#
# From tempest.config
#

# Directory containing image files (string value)
#img_dir = /opt/stack/new/devstack/files/images/cirros-0.3.1-x86_64-uec
img_dir = {{ tempest_images_dest }}

# Image file name (string value)
# Deprecated group/name - [DEFAULT]/qcow2_img_file
#img_file = cirros-0.3.1-x86_64-disk.img
img_file = {{ tempest_image_file }}

# Image disk format (string value)
#img_disk_format = qcow2

# Image container format (string value)
#img_container_format = bare

# Glance image properties. Use for custom images which require them
# (dict value)
#img_properties = <None>

# AMI image file name (string value)
#ami_img_file = cirros-0.3.1-x86_64-blank.img
ami_img_file =

# ARI image file name (string value)
#ari_img_file = cirros-0.3.1-x86_64-initrd
ari_img_file = {{ tempest_image_ari_img_file }}

# AKI image file name (string value)
#aki_img_file = cirros-0.3.1-x86_64-vmlinuz
aki_img_file = {{ tempest_image_aki_img_file }}

# ssh username for the image file (string value)
#ssh_user = cirros

# specifies how many resources to request at once. Used for large
# operations testing. (integer value)
#large_ops_number = 0

# DHCP client used by images to renew DCHP lease. If left empty,
# update operation will be skipped. Supported clients: "udhcpc",
# "dhclient" (string value)
# Allowed values: udhcpc, dhclient, ''
#dhcp_client = udhcpc


[service_available]

#
# From tempest.config
#

# Whether or not cinder is expected to be available (boolean value)
#cinder = true
cinder = {{ groups['cinder_volume'] | count > 0 }}
# Whether or not neutron is expected to be available (boolean value)
#neutron = false
neutron = {{ groups['neutron_controller'] | count > 0 }}

# Whether or not glance is expected to be available (boolean value)
#glance = true
glance = {{ groups['glance'] | count > 0 }}

# Whether or not swift is expected to be available (boolean value)
#swift = true
swift = {{ groups['swift_proxy'] | count > 0 }}

# Whether or not nova is expected to be available (boolean value)
#nova = true
nova = {{ groups['nova_controller'] | count > 0 }}

# Whether or not Heat is expected to be available (boolean value)
#heat = false
heat = {{ groups['heat'] | count > 0 }}

# Whether or not Ceilometer is expected to be available (boolean
# value)
#ceilometer = true
ceilometer = {{ groups['ceilometer_controller'] | count > 0 }}

aodh = {{ groups['aodh'] | count > 0 }}

# Whether or not Horizon is expected to be available (boolean value)
#horizon = true
horizon = {{ groups['horizon'] | count > 0 }}

# Whether or not Sahara is expected to be available (boolean value)
#sahara = false
sahara = {{ groups['sahara'] | count > 0 }}

# Whether or not Ironic is expected to be available (boolean value)
#ironic = false
ironic = {{ groups['ironic'] | count > 0 }}

# Whether or not Trove is expected to be available (boolean value)
#trove = false
trove = {{ groups['trove'] | count > 0 }}

# Whether or not Zaqar is expected to be available (boolean value)
#zaqar = false


[stress]

#
# From tempest.config
#

# Directory containing log files on the compute nodes (string value)
#nova_logdir = <None>

# Maximum number of instances to create during test. (integer value)
#max_instances = 16

# Controller host. (string value)
#controller = <None>

# Controller host. (string value)
#target_controller = <None>

# ssh user. (string value)
#target_ssh_user = <None>

# Path to private key. (string value)
#target_private_key_path = <None>

# regexp for list of log files. (string value)
#target_logfiles = <None>

# time (in seconds) between log file error checks. (integer value)
#log_check_interval = 60

# The number of threads created while stress test. (integer value)
#default_thread_number_per_action = 4

# Prevent the cleaning (tearDownClass()) between each stress test run
# if an exception occurs during this run. (boolean value)
#leave_dirty_stack = false

# Allows a full cleaning process after a stress test. Caution : this
# cleanup will remove every objects of every tenant. (boolean value)
#full_clean_stack = false


[telemetry]

#
# From tempest.config
#

# Catalog type of the Telemetry service. (string value)
#catalog_type = metering

# The endpoint type to use for the telemetry service. (string value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
#endpoint_type = publicURL

# This variable is used as flag to enable notification tests (boolean
# value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#too_slow_to_test = true


[telemetry-feature-enabled]

#
# From tempest.config
#

# Runs Ceilometer event-related tests (boolean value)
#events = false


[validation]

#
# From tempest.config
#

# Enable ssh on created servers and creation of additional validation
# resources to enable remote access (boolean value)
# Deprecated group/name - [compute]/run_ssh
#run_validation = false
run_validation = true

# Enable/disable security groups. (boolean value)
#security_group = true

# Enable/disable security group rules. (boolean value)
#security_group_rules = true

# Default IP type used for validation: -fixed: uses the first IP
# belonging to the fixed network -floating: creates and uses a
# floating IP (string value)
# Allowed values: fixed, floating
#connect_method = floating

# Default authentication method to the instance. Only ssh via keypair
# is supported for now. Additional methods will be handled in a
# separate spec. (string value)
# Allowed values: keypair
#auth_method = keypair

# Default IP version for ssh connections. (integer value)
# Deprecated group/name - [compute]/ip_version_for_ssh
#ip_version_for_ssh = 4

# Timeout in seconds to wait for ping to succeed. (integer value)
#ping_timeout = 120

# Timeout in seconds to wait for the TCP connection to be successful.
# (integer value)
# Deprecated group/name - [compute]/ssh_channel_timeout
#connect_timeout = 60

# Timeout in seconds to wait for the ssh banner. (integer value)
# Deprecated group/name - [compute]/ssh_timeout
#ssh_timeout = 300

# User name used to authenticate to an instance.
image_ssh_user = {{ cirros_ssh_user }}

# Unallocated floating IP range, which will be used to test the
# floating IP bulk feature for CRUD operation. This block must not
# overlap an existing floating IP pool. (string value)
#floating_ip_range = 10.0.0.0/29
floating_ip_range = 10.0.0.0/29

[volume]

#
# From tempest.config
#

# Time in seconds between volume availability checks. (integer value)
#build_interval = 1

# Timeout in seconds to wait for a volume to become available.
# (integer value)
#build_timeout = 300

# Catalog type of the Volume Service (string value)
#catalog_type = volume

# The volume region name to use. If empty, the value of
# identity.region is used instead. If no such region is found in the
# service catalog, the first found one is used. (string value)
#region =

# The endpoint type to use for the volume service. (string value)
# Allowed values: public, admin, internal, publicURL, adminURL, internalURL
#endpoint_type = publicURL

# Name of the backend1 (must be declared in cinder.conf) (string
# value)
#backend1_name = BACKEND_1

# Name of the backend2 (must be declared in cinder.conf) (string
# value)
#backend2_name = BACKEND_2

# Backend protocol to target when creating volume types (string value)
#storage_protocol = iSCSI

# Backend vendor to target when creating volume types (string value)
#vendor_name = Open Source

# Disk format to use when copying a volume to image (string value)
#disk_format = raw

# Default size in GB for volumes created by volumes tests (integer
# value)
#volume_size = 1


[volume-feature-enabled]

#
# From tempest.config
#

# Runs Cinder multi-backend test (requires 2 backends) (boolean value)
#multi_backend = false

# Runs Cinder volumes backup test (boolean value)
#backup = true

# Runs Cinder volume snapshot test (boolean value)
#snapshot = true

# Runs Cinder volume clone test (boolean value)
#clone = true

# A list of enabled volume extensions with a special entry all which
# indicates every extension is enabled. Empty list indicates all
# extensions are disabled (list value)
#api_extensions = all

# Is the v1 volume API enabled (boolean value)
#api_v1 = true

# Is the v2 volume API enabled (boolean value)
#api_v2 = true

api_v3 = true

# Update bootable status of a volume Not implemented on icehouse
# (boolean value)
#bootable = false
